1. Field of the Invention
The present invention relates generally to computerized workflow management and, more particularly, to a workflow management system and method that provides personal subflow processing.
2. Discussion of Related Art
xe2x80x9cWorkflowxe2x80x9d is the automation of a business process, in whole or part, during which documents, information, or tasks are passed from one xe2x80x9cactivityxe2x80x9d to another according to a defined xe2x80x9cbusiness process.xe2x80x9d A xe2x80x9cbusiness processxe2x80x9d is a defined set or sequence of procedures or activities that collectively realize a business objective or policy goal. An xe2x80x9cactivityxe2x80x9d is a description of a piece of work that forms one logical step within a business process or workflow performed by an xe2x80x9cactor.xe2x80x9d An activity may involve human resources (i.e., a xe2x80x9cparticipantxe2x80x9d) to support the execution of the activity, or it may involve automatic execution via a software xe2x80x9cagent.xe2x80x9d The xe2x80x9cwork itemxe2x80x9d represents the life cycle, or state, of a body of work as it passes through a workflow. A xe2x80x9cworkflow management systemxe2x80x9d provides procedural automation of a business process by managing the sequence of work activity and by invoking the appropriate human and/or computer resources associated with the various activity steps involved in the defined business process.
Over the years, many workflow management products have been introduced often particularly focusing on functional needs of a specific business processes. These systems are largely incompatible with other workflow systems, thus making it extremely difficult and costly for one workflow management system, for example, to interoperate with another workflow management system. This is undesirable because often the systems that cannot interoperate are considered related in a business sense.
To address the above, the Workflow Management Coalition (WfMC) was established with a stated purpose of developing specifications to facilitate interoperability between heterogeneous workflow products and to improve integration of workflow applications with other information technology (IT) services, such as electronic mail and document management. To this end, the WfMC developed and published a workflow reference model which, among other things, outlines a generic workflow model and various interfaces. See DAVID HOLLINGSWORTH, WORKFLOW MANAGEMENT COALITION, THE WORKFLOW REFERENCE MODEL, Document No. TC00-1003, which is hereby incorporated by reference in its entirety. The Coalition has further provided a specification of terminology and of the various interfaces. See, respectively, WORKFLOW MANAGEMENT COALITION, TERMINOLOGY AND GLOSSARY, Document No. WfMC-TC-1011, which is hereby incorporated by reference in its entirety, and WORKFLOW MANAGEMENT COALITION, WORKFLOW CLIENT APPLICATION (INTERFACE 2) APPLICATION PROGRAMMING INTERFACE (WAPI) SPECIFICATION, Document Number WfMC-TC-1009, which is hereby incorporated by reference in its entirety. The various standards and specifications are silent on implementation details of any of the various components and primarily focus on interfaces. Moreover, to the extent that interfaces are discussed with any specificity beyond an abstract model, they are discussed with reference to the xe2x80x98Cxe2x80x99 programming language.
For example, the WfMC defines the concept subprocess as xe2x80x9ca process that is enacted or called from another (initiating) process or (or sub-process) and which forms part of the overall (initiating) process.xe2x80x9d In this regard, the definition is akin to a subroutine in linear programming.
In conventional workflow management systems, a work item is a representation of a document or information being passed through a business process. Although the contents of that document may change along its transition from activity to activity, the xe2x80x9ctypexe2x80x9d of the item remains unchanged. For example, if a word processing document is being routed through a workflow, each participant or agent receives a copy of the word processing document. In short, conventional systems are document- or form-centric.
For example, Lotus Notes, available from IBM, is a collaborative mail-based system in which specific documents are passed through a proprietary interface and modified by an end-user and then passed to a next end-user. The same document is in use at all times. InConcert, available from InConcert, is an object-based system having a proprietary messaging protocol in which each action is associated with a single, specific display type. To transform information from one display to another requires manual intervention. Metro, available from Action Technologies, is a document and forms passing system in which the forms may be displayed in a browser.
The conventional systems require that each entity involved in a given workflow must understand and be able to process the data type that is being used by all other entities. This places restrictions on the types of entities that may be incorporated into a workflow. If another data type is needed a separate workflow must be initiated. This is not only inefficient but introduces its own inherent interoperability concerns.
Thus, since each of the activities operates on the same type of work item, e.g., a document, any subprocesses likewise operate on the same form of work item. Moreover, to the extent that subprocesses are actually implemented they are implemented on the same server as the originating workflow. This is almost definitional from the WfMC""s definitional reliance on xe2x80x9cenactmentxe2x80x9d and what that term means in the WfMC paradigm.
Moreover, the conventional systems centralize the processing to wherever the workflow is enacted. This is disadvantageous in enterprise computing where one physical location may perform a function, e.g., accounting, which other branches and locations need but which the other branches need not know the details of how the particular function is performed. Centralizing the processing requires the centralization of definition and to a large extent centralization of thinking, defeating some of the advantages of distributing the workplace into autonomous or relatively autonomous units. Moreover, in conventional subprocesses the actors are effectively xe2x80x9chardcodedxe2x80x9d into the definition. That is, the subprocess will be defined in a way that explicitly specifies who the participants are and what the agents will be. This xe2x80x9chardcodingxe2x80x9d limits the amount of usability and re-usability of the subprocess as only the specified actors may perform the subprocess activity. Lastly; all known implementations of WfMC subprocesses are unidirectional graphs. Thus, one activity is followed by a different activity which is followed by yet a different activity and so on. This unidirectional nature prevents many useful real-world processes from being implemented as a flow. At a theoretical level it may be elegant to think that a given process may be easily defined as a unidirectional sequence of activities, but in the real-world some processes require trial-and-error iteration. This requires a potential cycle in that a participant may want to go back, or unwind, to a prior activity and then repeat the activities anew.
Thus, it is an object of the invention to provide a workflow management system and method that overcomes the above disadvantages. It is another object of the invention to provide a workflow management system and method that improves the re-usability of subprocess definitions. It is yet another object of the invention to provide a workflow management system and method that allows personal subflows to execute as an unconstrained sequence of activities.
Preferred embodiments of the invention provide a workflow management system that improves interoperability by allowing personal subflows. The personal subflow does not have any explicit definition of participants or agents. Instead this information is linked or bound at run-time for the personal subflow, not at definition-time.
Under a preferred embodiment, a workflow system includes a workflow definition including an activity to be performed by a personal subflow. The personal subflow is defined by personal subflow activities and branch expressions associated with the subflow activities. A server interprets the workflow definition and facilitates the scheduling and routing of work items in the system. A client receives work items from the server and displays information therefrom to a participant. The client also receives data and control commands from the participant. A decision agent cooperates with the server in the scheduling of work items by considering participant-provided data and a branch expression associated with a current personal subflow activity.